package top.yxqz.resultMap;

import org.apache.ibatis.annotations.*;
import top.yxqz.mybatis.resultmap.pojo.Dept;

import java.util.List;

/**
 * @author: 余小小
 * @date: 2023/3/29
 * @description：部门接口
 */
public interface DeptMapper {
    /**
     * 通过部门id得到部门信息
     *
     * @param id
     * @return
     * id： 主键id
     * column:条件，数据库中的列名
     * property：字段信息
     * javaType：数据类型
     * @One; 对一的关系
     * @Many：对多的关系
     * 传递给第二步查询的条件column的值，是第一步对象相关的条件的的字段名，而不是数据库的列名
     */
    @Select("select * from t_dept where id=#{deltId} ;")
    @Results({
            @Result(property = "id", column = "id",id = true),
            @Result(property = "deptName", column = "dept_name"),
            @Result(property = "deptDesc", column = "dept_desc"),

            @Result(
                    property = "emps",
                    column = "id",
                    javaType = List.class,
                    many = @Many(select = "top.yxqz.resultMap.EmpMapper.getEmpsByDeptId")
            ),


    })
    Dept getDeptByDeptId(@Param("deltId") Integer id);
}
